import Plugin from '../../../lib/plugins/plugin.js'; // 确保Plugin类名的大小写与实际匹配  

export class BilibiliHotSearch extends Plugin {  
  constructor() {  
    super({  
      name: 'B站热搜',  
      dsc: '获取B站热搜前十',  
      event: 'message',  
      priority: 5000,  
      rule: [  
        {  
          reg: `^#(.*)(B站热搜|b站热搜|B站热搜|/B站热搜|/b站热搜)(.*)`, // 修改正则表达式以匹配“B站热搜”请求  
          fnc: 'getBilibiliHotSearch' // 修改方法名为getBilibiliHotSearch 
        },  
      ]  
    });  
  }  


  // 异步获取B站热搜
  async getBilibiliHotSearch(e) {
  try {
    // 发送请求获取B站热搜数据
    const res = await fetch('https://v.api.aa1.cn/api/bilibili-rs/');
    // 如果请求失败，抛出错误
    if (!res.ok) {
      throw new Error(`HTTP error! Status: ${res.status}`);
    }
    // 将响应转换为JSON格式
    const jsonResponse = await res.json();
    // 如果JSON数据存在且code为1，且data字段存在且为数组，则处理数据
    if (jsonResponse && jsonResponse.code === 1 && jsonResponse.data && Array.isArray(jsonResponse.data)) {
      // 假设data字段包含热搜数据
      const hotSearchList = jsonResponse.data.slice(0, 10); // 获取前十条热搜
      const replyText = hotSearchList.map((item, index) => `${index + 1}. [${item.title}](${item.link})`).join('\n'); // 使用Markdown格式回复热搜标题和链接
      await this.reply(replyText); // 回复B站热搜前十
    } else {
      // 处理data字段不存在或为空的情况
      await this.reply('未获取到B站热搜数据');
    }
  } catch (err) {
    // 请求失败或JSON解析失败时的处理
    console.error('[B站热搜] 接口请求失败或解析错误:', err); // 使用console.error记录错误
    await this.reply('B站热搜接口请求失败或解析错误,请联系管理员检查接口');
  }
}
  
}